//
// Description: 871. 约数之和
// Created by Loading on 2022/5/24.
//

/*
 * 一个正整数 N 一定可以表示成 N = p1^c1 * p2^c2 * ... * pk^ck，其中 p1、p2 …… pk 均为质数
 * 那么 N 的所有约数之和为 (p1^0 + p1^2 + …… + p1^c1) * (p2^0 + p2^1 + …… + p2^c2) * ... * (pk^0 + pk^1 + …… + pk^ck)
 * 由乘法分配律可知，上式每个括号里拿出一个参数相乘就是 N 的一个约数，分配律完成后也就是所有约数的和
 *
 * eg. 18 = 2^1 * 3^2，约数之和为：（2^0 + 2^1）*（3^0 + 3^1 + 3^2）= 1 + 3 + 9 + 2 + 6 + 18 = 39
 */

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;

constexpr int MOD = 1e9 + 7;

int main() {
    int n;
    cin >> n;

    // 储存每个质因子和其指数
    unordered_map<int, int> hash;
    LL res = 1;
    while (n--) {
        int x;
        cin >> x;

        for (int i = 2; i <= x / i; ++i) {
            while (x % i == 0) {
                x /= i;
                hash[i]++;
            }
        }
        // 处理大于 sqrt(x) 的质数
        if (x > 1) {
            hash[x]++;
        }
    }
    for (auto[k, v] : hash) {
        LL cnt = 1;
        for (int i = 0; i < v; ++i) {
            cnt = (cnt * k + 1) % MOD;
        }
        res = res * cnt % MOD;
    }

    cout << res << endl;

    return 0;
}